Adaptive contextual filtering based on typographical characteristics

ABSTRACT

Selectively applying graphical filtering to a portion of an object can include accessing an object to be rendered and identifying at least one characteristic of a portion of the object. A corresponding filter is then selectively applied to the at least one determined characteristic and, in some instances, without applying the filter to at least one other portion of the object.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.11/768,827 filed Jun. 26, 2007, and entitled “ADAPTIVE CONTEXTUAL”. Thisapplication is also related to Co-pending U.S. patent application Ser.No. 12/898,442 filed Oct. 5, 2010, and entitled “ADAPTIVE CONTEXTUALFILTERING BASED ON OBSERVER COLORBLINDNESS CHARACTERISTICS”. Theforegoing applications and are incorporated herein by reference in theirentireties.

BACKGROUND Background and Relevant Art

Computers and computing systems have affected nearly every aspect ofmodern living. Computers are generally involved in work, recreation,healthcare, transportation, entertainment, household management, etc.

Computers generally include hardware which allows a computer to outputvisual representations of data to a user. For example, computers mayinclude a video card connected to a CRT monitor or LCD video screenwhich allows objects including characters or other graphics to bedisplayed to the user. Similarly, many computers include the ability tointerface with printers to provide visual representations of data on ahard copy for the user.

Additionally, depending on the nature of the visual representations tothe users, certain filters may be applied to make the visualrepresentations more appealing or more readable. The filters applied maybe dependent on the visual representation. For example, LCD videoscreens are typically able to output data using a pixel resolution ofabout 110-130 pixels per inch. In contrast, printed representations canoutput data using a pixel resolution of the 300, 600 or even higher dotsper inch. Different filters may be applied to the object if it isintended to be displayed on an LCD video screen than are applied toobject if it is intended to be printed to a hard copy.

Generally, filters are applied on an object basis. For example, a filtermay be applied to a graphic, character, icon, etc.

The subject matter claimed herein is not limited to embodiments thatsolve any disadvantages or that operate only in environments such asthose described above. Rather, this background is only provided toillustrate one exemplary technology area where some embodimentsdescribed herein may be practiced.

BRIEF SUMMARY

One embodiment described herein includes a method including acts forselectively applying graphical filtering to a portion of an object. Onemethod described herein includes a method including accessing an objectto be rendered. At least one characteristic of a portion of the objectis determined. A filter is selected that has been pre-specified for atleast one determined characteristic For example the choice of a filtermay be dependent on knowledge of structural, color, typographical orgeometrical information. The filter is applied to the portion of theobject, while not applying the filter to at least one other portion ofthe object.

Embodiments may include identifying characteristics such as the presenceof various character features. For example, embodiments may identifystructural information including typographical entities such as strokes,serifs, counter spaces, etc; geometrical entities and characteristicssuch as boundaries, connected components, skeletons, orientations, etc;and relations between entities such as distance and relativeorientation. Embodiments may identify color information, includinginformation related to foreground and background. Still otherembodiments may identify user selections or zones of an object. Variousfilters may be applied including gray scaling, counter space improvementfiltering, color improvement filters, etc.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

Additional features and advantages will be set forth in the descriptionwhich follows, and in part will be obvious from the description, or maybe learned by the practice of the teachings herein. Features andadvantages of the invention may be realized and obtained by means of theinstruments and combinations particularly pointed out in the appendedclaims. Features of the present invention will become more fullyapparent from the following description and appended claims, or may belearned by the practice of the invention as set forth hereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and otheradvantages and features can be obtained, a more particular descriptionof the subject matter briefly described above will be rendered byreference to specific embodiments which are illustrated in the appendeddrawings. Understanding that these drawings depict only typicalembodiments and are not therefore to be considered to be limiting inscope, embodiments will be described and explained with additionalspecificity and detail through the use of the accompanying drawings inwhich:

FIG. 1 illustrates an object;

FIG. 2A illustrates a user selection box used to select a portion of anobject;

FIG. 2B illustrates selection of a portion of an object byidentification of a character feature;

FIG. 2C illustrates selection of a portion of an object by selection ofa zone of the object;

FIG. 3A illustrates application of antialiasing filtering a diagonal ofan object;

FIG. 3B illustrates examples of different filtering applied to objectsand portions of objects;

FIG. 4 illustrates a method of selectively applying filters to differentportions of an object.

DETAILED DESCRIPTION

Embodiments herein may comprise a special purpose or general-purposecomputer including various computer hardware, as discussed in greaterdetail below.

One embodiment illustrated herein allows filtering to be performed on aportion of an object as opposed to the entire object. A portion of anobject may have certain characteristics for which a particular filter isappropriate while the filter is not appropriate or not useful for otherportions of the object. Thus, a portion of an object with certaincharacteristics may be identified. A filter may then be selected, wherethe filter has been pre-defined as a filter appropriate for thecharacteristics. The filter is then applied to the portion correspondingto the characteristics. Further, other filters can be applied to otherportions of an object. Thus, rather than a single filter being appliedto an entire object, several different filters can be applied todifferent entities of an object or set of entities such as neighborhoodentities that fall within a given threshold distance, as appropriate.For example, filters more appropriate to stems are only applied tostems, filters more appropriate to counter spaces are only applied tocounter spaces, filters only appropriate to edges are only applied toedges, etc. For example, a filter may be specified for use with parts oftwo strokes where distance between the strokes falls below somepre-defined threshold value. The choice of a filter may be defined notonly by an entity but by a relation between the entities or parts of theentities. In some embodiments, any or all of the forgoing may allow for“filter hinting” where filters can be suggested in a filter hintinglanguage to facilitate rendering of objects.

Referring now to FIG. 1, an object 100 is illustrated. The object 100,in this particular example is a capital letter A. A computing system mayhave cause for outputting the capital letter A to a user in somegraphical form. The object 100 may be displayed on a CRT or LCD display,sent to a virtual video card for remote desktop applications, printed toa hard copy for display to a user, or displayed in some other fashion.It may be desirable to apply one or more filters to the object 100 priorto displaying the object 100 to the user. These filters will often bedependent on the resolution of the medium on which the object isdisplayed, the size of the object 100, the proximity of the object 100to other objects being displayed, the placement of the object on thedisplay medium, and other factors.

Some of the filters that may be desirable to apply to the object 100include traditional anti aliasing filters, ClearType® filters whichutilize sub pixel components of an LCD screen to render differentportions of the object on a sub pixel basis, gray scaling, and the like.These filters, when applied appropriately, can help to improve aviewer's perception of the object 100.

While in traditional applications of filters to objects, the applicationhas been limited to a per object basis, embodiments described hereinallow filters to be applied in a selective and contextual fashion. Forexample, filters may be applied to portion of an object without applyingthe filter to the entire object. Illustrating now an example, the object100 includes a number of features. For example the object 100 includesserifs such as serif 102. The object 100 also includes a crossbar 104.FIG. 1 also illustrates that the object 100 includes an interior counterspace 106. Objects may include stems, terminals, diagonals edges, orother features.

Certain filters may be more applicable to certain features than to otherfeatures. For example, a filter may be especially useful in improvingthe perception of serifs. Thus, in one embodiment, a portion of theobject 100 which includes a serif, such as serif 102 may be identified.A characteristic of the portion may also be identified. In the presentexample, the characteristic is the presence of a serif in the portion. Afilter has already been identified and pre-specified as especiallyuseful in improving the perception of serifs. As such, the pre-specifiedfilter is applied to the portion including the serif without applyingthe filter to at least one other portion of the object.

Referring now to FIGS. 2A-2C, a number of examples of how portions ofobjects may be identified and selected is illustrated. FIG. 2Aillustrates that a portion of an object may be selected by userspecification such as when a human user specifies a polygon whichencompasses the portion of the object to which a particular filtershould be applied. In the example shown in FIG. 2A, a select and dragindicator 202 shows the user specified polygon. However, other userspecified input may also be used such as various sizable polygon shapes,textual coordinate specification, or any other appropriatespecification.

Referring now to FIG. 2B, yet another example of specifying a portion ofan object is illustrated. In the example shown in FIG. 2B, a feature ofthe object 100 is identified and the portion of the objects selectedbased on the identification of the feature. Illustratively, FIG. 2Bshows that the serif 102 has been identified and that an identifiedportion 204 of the object 100 is the portion including the serif 102.Notably, other embodiments may include identifying other entities orcharacteristics. For example, embodiments may identify structuralinformation including typographical entities such as strokes, serifs,counter spaces, etc; geometrical entities and characteristics such asboundaries, connected components, skeletons, orientations, etc; andrelations between entities such as distance and relative orientation.Embodiments may identify color information, including informationrelated to foreground and background.

For identifying definite characteristics of an object, certaininformation is associated with the object. For example, an objecttypically includes information regarding the immediate surroundings ofthe object. Further, additional information commonly used in science ofvisual perception, such as information related to a wider surrounding,viewing conditions, and characteristics of an output device, isgenerally required and assumed to be known as a function of beingassociated with an object. This information may influence which portionsor entities of an object are identified and/or which filters areselected.

FIG. 2C illustrates yet another example of identifying a portion of anobject by identifying a zone of the object. In FIG. 2C, the object 100is divided into various quadrants. The portion of the object to which afilter is applied may be identified by quadrant. For example, theportion of the object may be identified as the upper right hand quadrant206. While this example illustrates quadrants, it should be appreciatedthat in other examples other divisions of the object 100 may beimplemented.

Embodiments may include various modalities and systems for accomplishingthe selection of portions of objects. As illustrated, a human user mayuse various selection tools, such a graphical interfaces to accomplishgraphical outlining, textual based selection such as coordinatedefinitions, etc to define portions of an object.

In other embodiments, software routines may be used to define portionsof an object. In one example, a software application may automaticallywithout human intervention, select portions of an object. The selectionmay be accomplished through recognition of features or other rules thatcan be applied to an object. Referring now to FIG. 3A, one example of afilter is illustrated. It will be appreciated from the disclosure hereinthat filtering can be applied to a selected portion of an object. FIG.3A illustrates an example of different anti-aliasing filters beingapplied to the left and right stems of the object 100 through the use ofgray scaling resulting in an object 108 post filtering. A widerx-directional gray scaling filter is applied to the left stem than tothe right stem resulting in a softer appearance of the left stem.

As illustrated in FIG. 3A, traditional filtering techniques such as grayscaling or ClearType filtering may be applied to a part of an object.Gray scaling shades pixels at the borders of characters using differentshades of gray to create a perceived smoother edge. ClearType filtering,available from Microsoft Corporation of Redmond Wash., uses sub-pixelcomponents, such as the red, green and blue sub-pixel components ofpixels, to accomplish finer resolution anti-aliasing. In otherembodiments, other types of filtering may be used depending on thedesired effect.

For example, application of different types of filters to the differentportions of an object may achieve a variety of desired visual effects.One such process of assigning color values may cause a geometricdistortion, such as a slight shift in a feature, which may be beneficialto achieve higher contrast. Another filter color balances an object sothat no one component is too blurry or too sharp. Another filter thatmay be applied uses color to denote hard or soft edges on a character.In particular, certain color palettes may be applied when there is adesire to indicate a hard edge while other color palettes may be appliedwhen there is a desire to indicate a soft edge. One ultimate goal offiltering may be to define intensities of the primaries, or anequivalent characteristic, for the output image. Different filters canbe applied for definition of different primaries. By introducingdependencies between filters for different primaries, resulting colorpalettes can be manipulated. Some filters may use different colors forportions of a character or object that are oriented in a particularfashion. For example, as between an upright portion or a slanted oroblique portion, more intense coloring may be used in oblique forms. Inaddition: Some filters may assign different colors for portions of acharacter or image that are in relation to another part of the characteror a set of portions of object that fall within a set distancethreshold.

One class of filters that may be applied includes applying filters whichhelp to optimize interior counter spaces by keeping the interior counterspaces, such as interior counter space 106 shown in FIG. 1, open. Thismay be done in a number of different ways. In one embodiment, optimizinginterior counter spaces may be accomplished by using color to create anoptical illusion of additional space through manipulation of assignedcolor values to pixels in relation to entities or portions of an object.

Referring now to FIG. 3B, an example is illustrated where differentfiltering is applied to different portions of an object to create anoverall better perception. FIG. 3B shows an example of adaptivefiltering applied to two characters, “a” and “e”. For each character,300 illustrates an outline representation of the characters. At 302 anover-scaled bitmap with a 6×6 overscaling factor is shown. At 304, anexample is illustrated where a single application of a narrowergray-scale filter is shown. At 306, the characters are shown as a resultof an application of a wider gray-scale filter. The application of thewider filter results in a smoother appearance of the round strokes, butalso visually closes counter-spaces, filling them with light shades ofgray. Thus, to correct this, adaptive filtering can be applied as shownat 308 where a wider filter is applied to exterior curves of thecharacter and a narrower filter is applied to the interiorcounter-spaces.

Some filtering is orientation dependent. For example, when applyingcoloring filters in x and y directions, filtering may be selected tooptimize perceived contrast taking into account orientation sensitivityof a human eye. Additionally, perceived x and y shifts can beaccomplished by using filtering which can cause an object to appear asbeing shifted. Thus, if there is a desire for a perceived shift toaccomplish a desirable spacing, certain filters can be applied to causethe perceived shift. This may be useful to control perceived spacing forparts of a single character, or to control perceived character tocharacter spacing.

Other filters may be applied based on other specific portions of anobject. For example, some filtering may be particularly appropriate fora given structural entity or characteristic. For example, it is oftendesirable for stokes to appear continuous. For example, it is desirablethat perceptible breaks in a stroke be minimized. Thus, a filter make beapplied to a stroke portion of an object, where the filter optimizes theperceived continuity of the stroke.

Still other filters may be applied to compensate for physiologicalperception characteristics in human or other species observers. Forexample, filters may be applied to minimize perceived colorfulness.Additionally, filters may be applied based on specific observercharacteristics. For example, some human users may suffer fromdichromatic vision, also known as colorblindness. For these users,different filters may be applied than what would be applied for userswith trichromatic vision.

Additionally, other filters may be applied to facilitate betterrecognition of characters or words. Specifically, it has been shown thatcertain spacing or delimiters help to facilitate character and wordrecognition. Further, it can be shown that certain imperfections incharacter rendering are more detrimental than other imperfections incharacter or word recognition. As such, a filter can be applied tofacilitate character or word recognition. In one embodiment, a filterapplies given spacings or delimiters to an object. In anotherembodiment, in situations where some loss of fidelity to the originaldesign is unavoidable, usually due to a limited resolution of an outputdevice, adaptive choice of filters helps to ensure that parts ofcharacters more important for the human recognition will be renderedwith higher fidelity than those less important for recognition.

Referring now to FIG. 4, a method 400 of applying filters isillustrated. The method 400 includes accessing an object to be rendered(act 402). For example, the object 100 illustrated in FIG. 3A may beaccessed to be rendered to a video screen, virtual video card for remotedesktop application, printed page, or some other rendering of the object100.

FIG. 4 further illustrates an act of determining characteristics of aportion of the object (act 404). For example, characteristics mayinclude that a portion is a user selected portion. For example, FIG. 2Aillustrates a user selection of a portion of an object 100. In anotherembodiment, characteristics of an object may include the presence oftypographical features such as a serif, stroke, stem, crossbar, edge,diagonal, etc. For example, FIG. 2 b illustrates that the portion 204 ofthe object 100 includes a serif 102. The inclusion of a serif may be acharacteristic. The characteristic may be the presence of open orinterior counter spaces, such as the counter space 106. Thecharacteristic may be that the portion of the object exists within aparticular pre-specified region of the object. For example, FIG. 2Cillustrates that an object 100 is divided into quadrants. Thecharacteristic of portion 206 may be that it includes the upper righthand quadrant. Any other suitable characteristic of a portion of anobject may alternatively be used.

The method 400 further includes selecting a filter that has beenpre-specified for the characteristics (act 406). In one embodiment, thecharacteristic may be specified by a user for a particular portion, suchas when the portion is selected by a user. Various other filters may beselected. For example, in one embodiment, when the characteristic is thepresence of open or interior counter spaces, a filter may be selectedwhich causes the counter space to be perceived as more open. For edges,filters that define the edges as hard or soft, as appropriate may beselected. Other continuity, coloring, or other filters may be applied asappropriate. As illustrated previously, any one of a number of differentfilters may be selected for a particular characteristic. Notably, thefilters selected may be have been pre-specified for the particularcharacteristic and may be specified, for example, in a filter hintinglanguage defining which filters should be applied for a particularcharacteristic. The selected filter is then applied to the portion ofthe object (act 408).

As noted previously, different filters may be applied to differentportions of an object before an object is output to a user. For example,one filter may be applied to portions including counter spaces on acharacter, but not applied to portions including diagonals, or serifs.Another filter may be applied to portions including diagonals but not toother portions. Still another filter may be applied only to portions ofthe object including serifs. An object can then be output using acomposite filter including individual filters where each individualfilter of the composite filter operates on some portion of an object,but not other portions of the object.

Embodiments may also include computer-readable media for carrying orhaving computer-executable instructions or data structures storedthereon. Such computer-readable media can be any available media thatcan be accessed by a general purpose or special purpose computer. By wayof example, and not limitation, such computer-readable media cancomprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage,magnetic disk storage or other magnetic storage devices, or any othermedium which can be used to carry or store desired program code means inthe form of computer-executable instructions or data structures andwhich can be accessed by a general purpose or special purpose computer.When information is transferred or provided over a network or anothercommunications connection (either hardwired, wireless, or a combinationof hardwired or wireless) to a computer, the computer properly views theconnection as a computer-readable medium. Thus, any such connection isproperly termed a computer-readable medium. Combinations of the aboveshould also be included within the scope of computer-readable media.

Computer-executable instructions comprise, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing device to perform a certain function orgroup of functions. Although the subject matter has been described inlanguage specific to structural features and/or methodological acts, itis to be understood that the subject matter defined in the appendedclaims is not necessarily limited to the specific features or actsdescribed above. Rather, the specific features and acts described aboveare disclosed as example forms of implementing the claims.

The present invention may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive. The scope of the invention is, therefore, indicatedby the appended claims rather than by the foregoing description. Allchanges which come within the meaning and range of equivalency of theclaims are to be embraced within their scope.

1. A method implemented by a computing system having a processor ofselectively applying graphical filtering to a portion of a character,the method comprising: accessing a character to be rendered; identifyinga limited portion of the character, the limited portion of the characterconsisting of less than the entire character and being defined by aparticular characteristic, the particular characteristic comprising atypographical characteristic corresponding to the limited portion of thecharacter, wherein the typographical characteristic comprises one ofeither a serif, a stroke, a stem or a diagonal and such that identifyingthe limited portion of the character includes distinguishing betweensaid serif, stroke, stem or diagonal and determining whether the limitedportion is either the serif, the stroke, the stem or the diagonal;selecting a filter that has been pre-specified for the particularcharacteristic; and applying the filter to the limited portion of thecharacter, while refraining from applying the filter to the entirecharacter, and such that a different filter will be applied depending onwhether the particular characteristic is distinguished to be said serif,stroke, stem or diagonal.
 2. The method of claim 1, wherein theparticular characteristic comprises a serif.
 3. The method of claim 1,wherein the particular characteristic comprises a diagonal.
 4. Themethod of claim 1, wherein the particular characteristic comprises astroke.
 5. The method of claim 1, wherein the particular characteristiccomprises a stem.
 6. The method of claim 1, wherein the particularcharacteristic comprises a distance between strokes.
 7. The method ofclaim 1, wherein the particular characteristic comprises a portion ofthe character falling within a defined geographic zone that covers onlya portion of the character.
 8. The method of claim 1, wherein saidfilter is a first filter and said typographic characteristic is a firsttypographic characteristic, and such that the first filter is applied tothe first typographic characteristic, and wherein the method includesapplying a second filter to a second typographic characteristic of thecharacter and without applying either the first filter or the secondfilter to the entire character.
 9. The method of claim 1, wherein themethod includes receiving a user selection which identifies theparticular characteristic.
 10. The method of claim 1, wherein the filteris pre-selected by human determination.
 11. The method of claim 1,wherein the filter is pre-specified in a filter hinting language. 12.The method of claim 11, wherein the filter is specified within thefilter hinting language by human interaction.
 13. The method of claim 1,wherein the filter includes parameters directed to models of humanvisual perception.
 14. The method of claim 1, wherein the filterincludes parameters directed to human recognition specific to a class ofobjects.
 15. A computer storage device comprising computer executableinstructions that, when executed by one or more processor of a computingsystem, cause the computing system to implement the following method:accessing a character to be rendered; identifying a limited portion ofthe character, the limited portion of the character consisting of lessthan the entire character and being defined by a particularcharacteristic, the particular characteristic comprising a typographicalcharacteristic corresponding to the limited portion of the character,wherein the typographical characteristic comprises one of either aserif, a stroke, a stem, a diagonal or other distinguishablecharacteristic that comprises less than the entire character and suchthat identifying the limited portion of the character includesdistinguishing between said serif, stroke, stem, diagonal or otherdistinguishable characteristic and determining whether the limitedportion is either the serif, the stroke, the stem, the diagonal or theother distinguishable characteristic; selecting a filter that has beenpre-specified for the particular characteristic; and applying the filterto the limited portion of the character, while refraining from applyingthe filter to the entire character, and such that a different filterwill be applied depending on whether the particular characteristic isdistinguished to be said serif, stroke, stem, diagonal, or otherdistinguishable characteristic.
 16. The computer storage device of claim15, wherein the particular characteristic comprises a distance betweenstrokes.
 17. The computer storage device of claim 16, wherein theparticular characteristic comprises a portion of the character fallingwithin a defined geographic zone that covers only a portion of thecharacter.
 18. The computer storage device of claim 15, wherein saidfilter is a first filter and said typographic characteristic is a firsttypographic characteristic, and such that the first filter is applied tothe first typographic characteristic, and wherein the method includesapplying a second filter to a second typographic characteristic of thecharacter and without applying either the first filter or the secondfilter to the entire character.
 19. The computer storage device of claim15, wherein the computer storage device comprises system memory of acomputing system.
 20. The computer storage device of claim 19, whereinthe computer storage device comprises the one or more processor.